process.env.NODE_ENV = 'production';
require('shelljs/global');
const webpack = require('webpack');
var utils = require('./utils');
var path = require('path');
//var HtmlWebpackPlugin = require('html-webpack-plugin');
var extractTextPlugin = require('extract-text-webpack-plugin');

var autoprefixer = require('autoprefixer');
var px2rem = require('postcss-px2rem');
var precss = require('precss');
rm('-rf', path.resolve(__dirname, '../dist'));
//var WebpackDevServer = require("webpack-dev-server");

module.exports = {
	entry: utils.getEntries(),
	output: {
		path: path.join(__dirname, '../dist'),
		filename: 'js/[name].[hash].js',
		publicPath: '/dist/'
	},
    resolve: {
        // require时省略的扩展名，如：require('module') 不需要module.js
        extensions: ['', '.js', '.css', '.vue', '.less'],
        // 别名，可以直接使用别名来代表设定的路径以及其他
        alias: {
            // filter: path.join(__dirname, '../src/resource/filters'),
            // components: path.join(__dirname, '../src/resource/components')
        }
    },
	module: {
		loaders: [
			{ test: /\.vue$/,loader: 'vue' },
			{ test: /\.js$/,exclude: /node_modules/,loader: 'babel-loader' },
			//{ test:/\.css$/,loader:'style!css!postcss' },
            { test: /\.less$/, loader: 'style!css!less'},
			{ test: /\.css$/, loader: extractTextPlugin.extract("style-loader", "css-loader") },
            { test: /\.(gif|jpg|png|woff|svg|eot|ttf)\??.*$/, loader: 'url-loader?limit=8192&name=img/[name].[hash:7].[ext]'}
            //{ test: /\.(html|tpl)$/, loader: 'html-loader' }
		]
	},
    // 转es5
    babel: {
        presets: ['es2015'],
        plugins: ['transform-runtime']
    },
	vue : {
	    loaders: {
	        css: extractTextPlugin.extract(
	            "style-loader",
	            "css-loader?sourceMap",
	            {
	                publicPath: "/dist"
	            }
	        ),
	        less: extractTextPlugin.extract(
	            'vue-style-loader',
	            'css-loader!less-loader'
	        )
	    }
	},
	postcss: function() {
		return [precss, autoprefixer({ browsers: ['last 2 versions']}), px2rem({remUnit: 75})]
	},
	// devServer:{
	// 	historyApiFallback:true,
	// 	hot:true,
	// 	inline:true,
	// 	progress:true
	// },
	plugins: [
		// new webpack.DefinePlugin({
		// 	'process.env.NODE.ENV':"production"
		// }),
	    new webpack.optimize.UglifyJsPlugin({
	        compress: {
	            warnings: false,
	        },
	        output: {
	            comments: false,
	        },
	    }),
   //      new HtmlWebpackPlugin({
			// filename: path.join(__dirname, '../index.html'),//设置这个html的文件名
			// template: './src/template/index.html',//要使用的模块的路径
   //          inject:'body',
   //          //hash:true,
   //          chunks:['app','search','index','js/public.chunk.js']   // 这个模板对应上面那个节点
   //      }),
   //      new HtmlWebpackPlugin({
			// filename: __dirname+'/dist/index-build.html',//设置这个html的文件名
			// template:__dirname+'/index.html',//要使用的模块的路径
   //          inject:'body',
   //          hash:true
   //          // chunks:['index','public.chunk.js']   // 这个模板对应上面那个节点
   //      }),
	  //   new HtmlWebpackPlugin({
		 //    title: 'My App',//设置title的名字
			// filename: __dirname+'/dist/login-build.html',//设置这个html的文件名
			// template:__dirname+'/index.html',//要使用的模块的路径
			// inject: 'body',//把模板注入到哪个标签后 'body'
			// favicon:'./src/img/jiuxiu_favicon.ico',//给html添加一个favicon
			// minify:{    //压缩HTML文件
			// 	removeComments:true,    //移除HTML中的注释
			// 	collapseWhitespace:false    //删除空白符与换行符
			// },
			// hash:false,//是否hash化 true false
			// cache:false,//是否缓存
			// showErrors:false,//是否显示错误
			// //"chunks": ['group'],//需要引入的chunk，不配置就会引入所有页面的资源.名字来源于你的入口文件。（例如：只有单元测试块 ）
			// "excludeChunks":[],//允许你跳过一些chunks（例如，不要单元测试的 chunk）
			// "chunksSortMode": 'dependency',//在chunk被插入到html之前，你可以控制它们的排序。允许的值 ‘none’ | ‘auto’ | ‘dependency’ | {function} 默认为‘auto’
			// "xhtml": false//是否自动闭合标签 默认false
	  //   }),
	  	new webpack.optimize.CommonsChunkPlugin('vendor', 'js/vendor.[hash].js'),
	   	//new webpack.optimize.CommonsChunkPlugin('js/public.chunk.js'),// 默认会把所有入口节点的公共代码提取出来,生成一个common.chunk.js
	    new extractTextPlugin('css/[id].[name].[hash].css',{allChunks:true})// css抽取
	]
 };
 module.exports.plugins=module.exports.plugins.concat(utils.createHtml());